package br.com.almanach.cadastro;

import br.com.almanach.dominio.cadastro.Evento;
import br.com.almanach.dominio.cadastro.Ministracao;
import br.com.almanach.jsf.JSFUtil;
import br.com.almanach.jsf.Pagina;
import br.com.almanach.negocio.cadastro.EventoNegocio;
import br.com.almanach.padrao.Editar;
import br.com.almanach.web.Sessao;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;

@ManagedBean(name="editarEvento")
@ViewScoped
public class EditarEvento extends Editar implements Serializable {

    @ManagedProperty(value="#{sessao}")
    private Sessao sessao;

    @EJB
    private EventoNegocio eventoNegocio;
    private Evento objeto;

    @PostConstruct
    public void construtor(){
        String id = JSFUtil.getParametro("id");
        if(id!=null){
            objeto = eventoNegocio.buscar(new Integer(id));
            this.sessao.setEvento(objeto);
        }
    }

    @Override
    public String salvar() {        
        if(this.objeto.getId()==null){
            eventoNegocio.incluir(this.objeto);
        }else{
            eventoNegocio.alterar(this.objeto);
        }
        return Pagina.LISTAR_EVENTO_REDIRECIONAR;
    }

    public String voltar(){
        return "LISTAR_EVENTO_ENCAMINHAR";
    }


    public void setEventoNegocio(EventoNegocio eventoNegocio) {
        this.eventoNegocio = eventoNegocio;
    }

    public Evento getObjeto() {
        if(objeto==null){
            objeto = new Evento();
        }
        return objeto;
    }

    public void setObjeto(Evento objeto) {
        this.objeto = objeto;
    }

    public void setSessao(Sessao sessao) {
        this.sessao = sessao;
    }

    public String removerMinistracao(Ministracao ministracao) {
        this.objeto.getMinistracoes().remove(ministracao);
        return null;
    }

}